设计模式实战100例 (Java/C++)
📚 共计 100 章节
01
设计模式入门
设计模式的历史、GoF 23种设计模式分类、为什么学习设计模式、如何选择设计模式
基础
导论
02
单例模式 (Singleton)
饿汉式、懒汉式、双重检查锁、静态内部类、枚举实现、C++实现对比
创建型
多线程
03
工厂方法模式 (Factory Method)
简单工厂、工厂方法、适用场景、JDBC中的工厂模式
创建型
解耦
04
抽象工厂模式 (Abstract Factory)
产品族与产品等级、抽象工厂结构、Spring中的抽象工厂
创建型
产品族
05
建造者模式 (Builder)
链式调用、Builder与构造器区别、Lombok @Builder、C++实现
创建型
链式
06
原型模式 (Prototype)
浅克隆与深克隆、Cloneable接口、序列化实现深克隆、C++拷贝构造
创建型
克隆
07
适配器模式 (Adapter)
类适配器、对象适配器、接口适配器、Spring MVC中的适配器
结构型
兼容
08
桥接模式 (Bridge)
抽象与实现分离、JDBC驱动桥接、C++多重继承替代方案
结构型
分离
09
组合模式 (Composite)
透明式与安全式、文件系统设计、HashMap中的组合
结构型
树形
10
装饰器模式 (Decorator)
动态扩展功能、IO流中的装饰器、Java与C++实现对比
结构型
增强
11
外观模式 (Facade)
统一接口、子系统解耦、Tomcat中的外观模式
结构型
封装
12
享元模式 (Flyweight)
对象共享、Integer缓存、线程池中的享元、C++实现
结构型
共享
13
代理模式 (Proxy)
静态代理、动态代理(JDK/CGLIB)、AOP实现原理、C++代理
结构型
控制
14
模板方法模式 (Template Method)
算法骨架、钩子方法、JdbcTemplate设计
行为型
复用
15
策略模式 (Strategy)
算法族封装、Comparator策略、支付场景实战
行为型
算法
16
观察者模式 (Observer)
发布订阅、事件监听、Spring事件机制、C++信号槽
行为型
事件
17
迭代器模式 (Iterator)
统一遍历接口、ArrayList迭代器、C++ STL迭代器
行为型
遍历
18
责任链模式 (Chain of Responsibility)
请求传递、FilterChain、Netty Pipeline
行为型
链式
19
命令模式 (Command)
请求封装、撤销操作、Runnable接口、C++函数对象
行为型
封装
20
备忘录模式 (Memento)
状态恢复、快照机制、游戏存档实现
行为型
快照
21
状态模式 (State)
状态转换、订单状态机、C++状态模式实现
行为型
状态机
22
访问者模式 (Visitor)
数据结构与操作分离、Double Dispatch、C++实现
行为型
遍历
23
中介者模式 (Mediator)
对象交互解耦、MVC中的中介者、聊天室实现
行为型
协调
24
解释器模式 (Interpreter)
语法解析、表达式计算、SQL解析器设计
行为型
解析
25
综合实战一:电商订单系统
基于Spring Boot (单例+工厂+策略+观察者)
实战
Spring
26
综合实战二:RPC框架
基于Netty (代理+责任链+命令+装饰器)
实战
Netty
27
综合实战三:绘图工具
基于Java Swing (命令+状态+备忘录+组合)
实战
Swing
28
综合实战四:游戏引擎
基于C++ (状态+策略+观察者+工厂)
实战
C++
29
综合实战五:微服务网关
基于Spring Cloud (代理+责任链+适配器+外观)
实战
微服务
30
综合实战六:ORM框架
基于MyBatis (模板方法+代理+工厂+建造者)
实战
MyBatis
31
综合实战七:分布式锁
基于Redis (单例+代理+策略+模板方法)
实战
Redis
32
综合实战八:消息中间件
基于Kafka (观察者+责任链+命令+工厂)
实战
Kafka
33
综合实战九:搜索引擎
基于Elasticsearch (适配器+策略+模板方法+建造者)
实战
ES
34
综合实战十:容器编排
基于Docker (外观+策略+命令+观察者)
实战
Docker
35
设计模式与Spring框架
IoC容器中的单例与工厂、AOP中的代理、MVC中的适配器
框架
Spring
36
设计模式与MyBatis框架
SqlSessionFactory中的工厂、MapperProxy中的代理、缓存中的装饰器
框架
MyBatis
37
设计模式与Netty框架
ChannelPipeline中的责任链、EventLoop中的命令、ByteBuf中的享元
框架
Netty
38
设计模式与JDK源码
Collections中的策略、InputStream中的装饰器、Runtime中的单例
源码
JDK
39
设计模式与Tomcat
Pipeline中的责任链、Lifecycle中的观察者、Connector中的适配器
框架
Tomcat
40
设计模式与Spring Boot
自动配置中的工厂、Starter中的外观、Actuator中的观察者
框架
Boot
41
设计模式与并发编程
线程池中的享元、Future中的代理、Lock中的状态
并发
多线程
42
设计模式与分布式系统
服务注册中的观察者、负载均衡中的策略、熔断器中的状态
分布式
43
设计模式与微服务架构
API网关中的外观、服务调用中的代理、配置中心中的观察者
微服务
44
设计模式与云原生
容器编排中的策略、服务网格中的代理、Serverless中的命令
云原生
45
设计模式与大数据
MapReduce中的模板方法、Spark中的策略、Flink中的状态
大数据
46
设计模式与AI/ML
神经网络中的组合、强化学习中的策略、模型训练中的模板方法
AI
47
设计模式与游戏开发
游戏循环中的模板方法、AI行为树中的策略、技能系统中的命令
游戏
48
设计模式与GUI开发
事件处理中的观察者、布局管理中的策略、组件树中的组合
GUI
49
设计模式与数据库
连接池中的享元、事务管理中的模板方法、ORM中的代理
数据库
50
设计模式与网络编程
协议解析中的解释器、连接管理中的状态、消息处理中的责任链
网络
51
设计模式与安全
认证中的策略、授权中的代理、加密中的模板方法
安全
52
设计模式与测试
Mock中的代理、测试框架中的模板方法、断言中的策略
测试
53
设计模式与重构
用策略模式替换if-else、用状态模式替换switch、用观察者解耦
重构
54
设计模式与性能优化
享元模式减少对象、代理模式延迟加载、装饰器模式避免继承爆炸
性能
55
设计模式与代码可读性
建造者模式简化构造、外观模式封装复杂、模板方法明确流程